Most forms of computer systems include memory systems including one or more types of memory structures for temporary and long-term storage of instructions (such as programs), data, and other information used or generated by the computer system. The term “computer system” is used herein to broadly refer to a system using one or more microprocessors, microcontrollers and/or digital signal processors or other devices having the capability of running a “program” (all such devices being referred to herein as a “processor”); wherein a “program” is any set of executable machine code instructions (and therefore includes user-level applications, as well as system-directed applications, or daemons). Examples of different forms of computer systems are discussed herein, in reference to FIG. 5.
In many such computer systems, volatile memory is used to store currently executing computer programs, data, and other information needed by the processor while the device is powered. Examples of commonly-used volatile memory include Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate SDRAM (DDR), and the like. Similarly, in many such computing systems non-volatile memory is used for long term or persistent storage of programs, generated or retained data, or other information, etc. Non-volatile memory can include any one or more of many different configurations of nonvolatile memory storage, with flash memory being the most common, but other types of devices are also used, including phase change memory (PCRAM) (in various forms), magnetic memory (MRAM), and ferro-electric memory (FeRAM), etc. in some systems at least some portion of the nonvolatile memory, may be in the form of a solid state drive (SSD), serving the long term rewriteable storage function of a conventional magnetic hard disk drive (HDD), and typically implemented through use of NAND flash memory in combination with control functionality. Computer systems may also rely on other storage mechanisms as well, such as HDDs, Optical media (such as CD-ROMS, CDR/RW-ROMS and DVD-ROMs), etc.